home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of MacTutor - S…e Code for Volumes 1 to 5
/
The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin
/
Source Code
/
#18 (Mar 87)
/
Fortran Runge-Kutta
/
Fortran Benchmark.text
< prev
next >
Wrap
Text File
|
1987-01-29
|
969b
|
54 lines
INTEGER ORDER
DIMENSION X(6),XOLD(6),XD(6)
DATA B1,B2,B3,B4,B5,B6,W0/3.86,7.46,9.13,7.46,3.86,1.,50./
DATA XIN/1./
ORDER=6
W02=W0*W0
W03=W02*W0
W04=W03*W0
W05=W04*W0
W06=W05*W0
DO 10 I=1,ORDER
X(I)=0.
10 CONTINUE
T=0.
H=.0001
S=0.
5 IF(T.GE..5)GOTO 999
S=S+H
DO 20 I=1,ORDER
XOLD(I)=X(I)
20 CONTINUE
CALL INTEG(T,XD,X,W02,W03,W04,W05,W06)
DO 30 I=1,ORDER
X(I)=X(I)+H*XD(I)
30 CONTINUE
T=T+H
CALL INTEG(T,XD,X,W02,W03,W04,W05,W06)
DO 40 I=1,ORDER
X(I)=(XOLD(I)+X(I))/2.+.5*H*XD(I)
40 CONTINUE
IF(S.GE..004999)THEN
S=0.
WRITE(9,*)T,X(1)
ELSE
END IF
GOTO 5
999 CONTINUE
END
SUBROUTINE INTEG(T,XD,X,W02,W03,W04,W05,W06)
SAVE
INTEGER ORDER
DIMENSION X(6),XOLD(6),XD(6)
DATA B1,B2,B3,B4,B5,B6,W0/3.86,7.46,9.13,7.46,3.86,1.,50./
DATA XIN/1./
ORDER=6
XD(1)=X(2)
XD(2)=X(3)
XD(3)=X(4)
XD(4)=X(5)
XD(5)=X(6)
XD(6)=W06*(XIN-B5*X(6)/W05-B4*X(5)/W04-B3*X(4)/W03
+-B2*X(3)/W02-B1*X(2)/W0-X(1))/B6
RETURN
END